package com.lkbaby.controller;

import com.lkbaby.pojo.Dept;
import com.lkbaby.service.DeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
public class DeptController {

	@Autowired
	private DeptService deptService;

	@Autowired
	private DiscoveryClient discoveryClient;

	@PostMapping("/dept/add")
	public boolean addDept(@RequestBody Dept dept) {
		return deptService.addDept(dept);
	}

	@GetMapping("/dept/get/{id}")
	public Dept queryByNo(@PathVariable("id") Long id) {
		return deptService.queryDeptByID(id);
	}

	@GetMapping("/dept/list")
	public List<Dept> queryAll() {
		return deptService.queryAll();
	}

	@GetMapping("/dept/discovery")
	public Object discovery() {
		List<String> services = discoveryClient.getServices();
		System.out.println("discovery -> service : " + services);

		List<ServiceInstance> instances = discoveryClient.getInstances("SPRINGCLOUD-PROVIDER-DEPT-8001");
		for (ServiceInstance instance : instances) {
			System.out.println(
					instance.getHost() + "\t" +
							instance.getPort() + "\t" +
							instance.getUri() + "\t" +
							instance.getInstanceId()
			);
		}
		return this.discoveryClient;
	}

}
